package main

import (
	"fmt"
)

type Something string

func (a *Something) String() string {
	return "Bye"
}

func main() {
	a := Something("Hello")

	var p *string
	p = new(string)
	*p = "zouwei001"
	s := (*Something)(p)
    fmt.Printf("type:%T value:%v\n",p,*p)
	fmt.Printf("type:%T value:%v\n",s,s)
	fmt.Printf("%s", a)
	fmt.Printf(" %s", a.String())
}

//func newStringValue(val string, p *string) *stringValue {
//	*p = val
//	return (*stringValue)(p)
//}